home *** CD-ROM | disk | FTP | other *** search
/ Champak 49 / Volume 49 - JOGO DISK .iso / Games / harrythehamster.swf / scripts / frame_43 / DoAction.as
Encoding:
Text File  |  2007-09-28  |  8.6 KB  |  342 lines

  1. function pos(obj, x, y)
  2. {
  3.    obj._x = 35 + 70 * x;
  4.    obj._y = 525 - 70 * y;
  5. }
  6. function done(nextEntry)
  7. {
  8.    hamsterEntry = nextEntry;
  9.    switch(hamsterEntry)
  10.    {
  11.       case "T":
  12.          hamsterY--;
  13.          break;
  14.       case "R":
  15.          hamsterX--;
  16.          break;
  17.       case "B":
  18.          hamsterY++;
  19.          break;
  20.       case "L":
  21.          hamsterX++;
  22.    }
  23.    if(hamsterX == 9 && hamsterY == endPos)
  24.    {
  25.       status = "victorious";
  26.    }
  27.    else
  28.    {
  29.       var nextPiece = -1;
  30.       var hitSomething = false;
  31.       var i = 0;
  32.       while(i < pNum)
  33.       {
  34.          if(hamsterX == pX[i] && hamsterY == pY[i] && !(drag && dragNum == i))
  35.          {
  36.             hitSomething = true;
  37.             if(hamsterEntry == "T" && pObj3[i].T)
  38.             {
  39.                nextPiece = i;
  40.             }
  41.             if(hamsterEntry == "R" && pObj3[i].R)
  42.             {
  43.                nextPiece = i;
  44.             }
  45.             if(hamsterEntry == "B" && pObj3[i].B)
  46.             {
  47.                nextPiece = i;
  48.             }
  49.             if(hamsterEntry == "L" && pObj3[i].L)
  50.             {
  51.                nextPiece = i;
  52.             }
  53.             if(hamsterFly && pObj3[i].funnel != true)
  54.             {
  55.                nextPiece = -1;
  56.             }
  57.             if(!hamsterFly && pObj3[i].funnel == true)
  58.             {
  59.                nextPiece = -1;
  60.             }
  61.          }
  62.          i++;
  63.       }
  64.       if(hamsterFly && !hitSomething)
  65.       {
  66.          var i = 0;
  67.          while(i < oNum)
  68.          {
  69.             if(hamsterX == oX[i] && hamsterY == oY[i])
  70.             {
  71.                hitSomething = true;
  72.             }
  73.             i++;
  74.          }
  75.       }
  76.       if(nextPiece == -1)
  77.       {
  78.          if(hamsterFly && !hitSomething && hamsterX > 0 && hamsterX < 9 && hamsterY > 0 && hamsterY < 8)
  79.          {
  80.             pos(flying,hamsterX,hamsterY);
  81.             if(hamsterEntry == "T")
  82.             {
  83.                flying.gotoAndPlay("T");
  84.             }
  85.             if(hamsterEntry == "R")
  86.             {
  87.                flying.gotoAndPlay("R");
  88.             }
  89.             if(hamsterEntry == "B")
  90.             {
  91.                flying.gotoAndPlay("B");
  92.             }
  93.             if(hamsterEntry == "L")
  94.             {
  95.                flying.gotoAndPlay("L");
  96.             }
  97.          }
  98.          else
  99.          {
  100.             status = "dead";
  101.             pos(dead,hamsterX,hamsterY);
  102.             dead.dX = -1 + 2 * Math.random();
  103.             dead.dY = -3;
  104.             dead.count = 50;
  105.             soundDead.gotoAndPlay(2);
  106.             switch(hamsterEntry)
  107.             {
  108.                case "T":
  109.                   dead._y -= 33;
  110.                   dead.dY = - 1;
  111.                   break;
  112.                case "R":
  113.                   dead._x += 33;
  114.                   dead.dX = - 2;
  115.                   break;
  116.                case "B":
  117.                   dead._y += 33;
  118.                   dead.dY = - 5;
  119.                   break;
  120.                case "L":
  121.                   dead._x -= 33;
  122.                   dead.dX = 2;
  123.             }
  124.          }
  125.       }
  126.       else
  127.       {
  128.          switch(hamsterEntry)
  129.          {
  130.             case "T":
  131.                pObj1[nextPiece].gotoAndPlay("T");
  132.                pObj2[nextPiece].gotoAndPlay("T");
  133.                pObj3[nextPiece].gotoAndPlay("T");
  134.                break;
  135.             case "R":
  136.                pObj1[nextPiece].gotoAndPlay("R");
  137.                pObj2[nextPiece].gotoAndPlay("R");
  138.                pObj3[nextPiece].gotoAndPlay("R");
  139.                break;
  140.             case "B":
  141.                pObj1[nextPiece].gotoAndPlay("B");
  142.                pObj2[nextPiece].gotoAndPlay("B");
  143.                pObj3[nextPiece].gotoAndPlay("B");
  144.                break;
  145.             case "L":
  146.                pObj1[nextPiece].gotoAndPlay("L");
  147.                pObj2[nextPiece].gotoAndPlay("L");
  148.                pObj3[nextPiece].gotoAndPlay("L");
  149.          }
  150.          pUsed[nextPiece] = true;
  151.          if(currentPiece != -1)
  152.          {
  153.             pObj1[currentPiece]._alpha = 60;
  154.             pObj3[currentPiece]._alpha = 60;
  155.          }
  156.          currentPiece = nextPiece;
  157.          piecesUsed++;
  158.          if(pObj3[nextPiece].fly)
  159.          {
  160.             hamsterFly = true;
  161.          }
  162.          else
  163.          {
  164.             hamsterFly = false;
  165.          }
  166.       }
  167.    }
  168. }
  169. function tidyUp()
  170. {
  171.    var i = 0;
  172.    while(i < oNum)
  173.    {
  174.       eval("o" + i).removeMovieClip();
  175.       i++;
  176.    }
  177.    var i = 0;
  178.    while(i < pNum)
  179.    {
  180.       pObj1[i].removeMovieClip();
  181.       pObj2[i].removeMovieClip();
  182.       pObj3[i].removeMovieClip();
  183.       i++;
  184.    }
  185.    dead.removeMovieClip();
  186.    start2.removeMovieClip();
  187.    start3.removeMovieClip();
  188.    end3.removeMovieClip();
  189.    cat.removeMovieClip();
  190.    announceLevel.removeMovieClip();
  191. }
  192. stopAllSounds();
  193. var mouseButton = false;
  194. var mouseX = 0;
  195. var mouseY = 0;
  196. var mouseButtonLast = false;
  197. var drag = false;
  198. var dragNum;
  199. background.gotoAndStop(1 + level);
  200. switch(level)
  201. {
  202.    case 1:
  203.       var description = "The Garden";
  204.       var startPos = 2;
  205.       var endPos = 3;
  206.       var obstacles = "";
  207.       var pieces = "aaabcdefllll";
  208.       var maxTimer = 40;
  209.       break;
  210.    case 2:
  211.       var description = "The Kitchen";
  212.       var startPos = 3;
  213.       var endPos = 5;
  214.       var obstacles = "334465";
  215.       var pieces = "aacdefnnggha";
  216.       var maxTimer = 40;
  217.       break;
  218.    case 3:
  219.       var description = "The Living Room";
  220.       var startPos = 5;
  221.       var endPos = 2;
  222.       var obstacles = "2534435271728475";
  223.       var pieces = "bbbbccdefhjor";
  224.       var maxTimer = 40;
  225.       break;
  226.    case 4:
  227.       var description = "The Stairs";
  228.       var startPos = 2;
  229.       var endPos = 6;
  230.       var obstacles = "212223242527727374757756";
  231.       var pieces = "bbbcffimnpqorpq";
  232.       var maxTimer = 40;
  233.       break;
  234.    case 5:
  235.       var description = "The Bedroom";
  236.       var startPos = 6;
  237.       var endPos = 2;
  238.       var obstacles = "1526773545557583722234534262";
  239.       var pieces = "kijhmddfororfccbdfdfb";
  240.       var maxTimer = 40;
  241. }
  242. mStart2.duplicateMovieClip("start2",2990);
  243. pos(start2,0,startPos);
  244. mStart2.stop();
  245. mStart2._visible = false;
  246. mStart3.duplicateMovieClip("start3",3990);
  247. pos(start3,0,startPos);
  248. mStart3.stop();
  249. mStart3._visible = false;
  250. mEnd3.duplicateMovieClip("end3",3991);
  251. pos(end3,9,endPos);
  252. mEnd3.stop();
  253. mEnd3._visible = false;
  254. var oNum = obstacles.length / 2;
  255. var oX = new Array();
  256. var oY = new Array();
  257. var i = 0;
  258. while(i < oNum)
  259. {
  260.    oX[i] = Number(obstacles.charAt(i * 2));
  261.    oY[i] = Number(obstacles.charAt(i * 2 + 1));
  262.    mObstacle.duplicateMovieClip("o" + i,900 + i);
  263.    pos(eval("o" + i),oX[i],oY[i]);
  264.    i++;
  265. }
  266. mObstacle._visible = false;
  267. var pNum = pieces.length;
  268. var pObj1 = new Array();
  269. var pObj2 = new Array();
  270. var pObj3 = new Array();
  271. var pUsed = new Array();
  272. var pX = new Array();
  273. var pY = new Array();
  274. var i = 0;
  275. while(i < pNum)
  276. {
  277.    var j = pieces.charAt(i);
  278.    eval("m" + j + "1").duplicateMovieClip("p" + j + "1" + i,1000 + i);
  279.    eval("m" + j + "1")._visible = false;
  280.    pObj1[i] = eval("p" + j + "1" + i);
  281.    eval("m" + j + "2").duplicateMovieClip("p" + j + "2" + i,2000 + i);
  282.    eval("m" + j + "2")._visible = false;
  283.    pObj2[i] = eval("p" + j + "2" + i);
  284.    eval("m" + j + "3").duplicateMovieClip("p" + j + "3" + i,3000 + i);
  285.    eval("m" + j + "3")._visible = false;
  286.    pObj3[i] = eval("p" + j + "3" + i);
  287.    do
  288.    {
  289.       pX[i] = 1 + Math.floor(7.99 * Math.random());
  290.       pY[i] = 1 + Math.floor(6.99 * Math.random());
  291.       var dupe = false;
  292.       var k = 0;
  293.       while(k < oNum)
  294.       {
  295.          if(pX[i] == oX[k] && pY[i] == oY[k])
  296.          {
  297.             dupe = true;
  298.          }
  299.          k++;
  300.       }
  301.       if(dupe == false)
  302.       {
  303.          var k = 0;
  304.          while(k < i)
  305.          {
  306.             if(pX[i] == pX[k] && pY[i] == pY[k])
  307.             {
  308.                dupe = true;
  309.             }
  310.             k++;
  311.          }
  312.       }
  313.    }
  314.    while(dupe);
  315.    
  316.    pos(pObj1[i],pX[i],pY[i]);
  317.    pos(pObj2[i],pX[i],pY[i]);
  318.    pos(pObj3[i],pX[i],pY[i]);
  319.    pUsed[i] = false;
  320.    i++;
  321. }
  322. mDead.duplicateMovieClip("dead",2999);
  323. mDead.stop();
  324. mDead._visible = false;
  325. mFlying.duplicateMovieClip("flying",2889);
  326. mFlying._visible = false;
  327. mCat.duplicateMovieClip("cat",500);
  328. mCat._visible = false;
  329. grid._visible = false;
  330. var status = "waiting";
  331. var hamsterX = 0;
  332. var hamsterY = startPos;
  333. var hamsterEntry = "L";
  334. var hamsterFly = false;
  335. var timer = maxTimer;
  336. var piecesUsed = 0;
  337. var currentPiece = -1;
  338. mAnnounceLevel.duplicateMovieClip("announceLevel",6000);
  339. announceLevel.levelText.level = description;
  340. mAnnounceLevel.stop();
  341. mAnnounceLevel._visible = false;
  342.